package com.qianfeng.request;


//
//                            _ooOoo_  
//                           o8888888o  
//                           88" . "88  
//                           (| -_- |)  
//                            O\ = /O  
//                        ____/`---'\____  
//                      .   ' \\| |// `.  
//                       / \\||| : |||// \  
//                     / _||||| -:- |||||- \  
//                       | | \\\ - /// | |  
//                     | \_| ''\---/'' | |  
//                      \ .-\__ `-` ___/-. /  
//                   ___`. .' /--.--\ `. . __  
//                ."" '< `.___\_<|>_/___.' >'"".  
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |  
//                 \ \ `-. \_ __\ /__ _/ .-` / /  
//         ======`-.____`-.___\_____/___.-`____.-'======  
//                            `=---='  
//  
//         .............................................  
//                  佛祖镇楼            BUG辟易  
//          佛曰:  
//                  写字楼里写字间，写字间里程序员；  
//                  程序人员写程序，又拿程序换酒钱。  
//                  酒醒只在网上坐，酒醉还来网下眠；  
//                  酒醉酒醒日复日，网上网下年复年。  
//                  但愿老死电脑间，不愿鞠躬老板前；  
//                  奔驰宝马贵者趣，公交自行程序员。  
//                  别人笑我忒疯癫，我笑自己命太贱；  


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;

/**
 * Created by jackiechan on 2021/8/27 14:35
 * 获取请求参数的 servlet,当我们服务器收到请求的时候要获取用户传递过来的参数,这个参数可能我们要求传递的固定格式的参数,也可以是允许用户自定义传递的参数
 * @author jackiechan
 * @version 1.0
 * @since 1.0
 */
@WebServlet("/other")
public class RequesrServletOther extends HttpServlet {

    /**
     *
     * @param req 请求对象,从它里面可以获取到有用户请求携带过来的数据
     * @param resp 响应对象,很多人会迟疑,请求都还没处理的,怎么会有响应对象,这个响应对象是 java 中的对象,目的是提前可以设置响应相关的数据,最后再返回的时候获取这里面的数据进行返回
     *             实际上内部包含了一个流,这个流已经和客户端保持连接
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.err.println(req.getParameter("hobby"));
        Enumeration<String> headerNames = req.getHeaderNames();//获取的是所有的请求头的名字
        while (headerNames.hasMoreElements()) {
            String header = headerNames.nextElement();
            System.err.println(header);
        }

        Enumeration<String> parameterNames = req.getParameterNames();//获取用户传递的所有的参数的名字
        while (parameterNames.hasMoreElements()) {
            String name = parameterNames.nextElement();//拿到用户传递的每一个参数的名字
            String value = req.getParameter(name);//获取这个参数的值
            System.err.println(name+"------->"+value);
        }

        Map<String, String[]> parameterMap = req.getParameterMap();//获取和参数相关的 map
       // System.err.println(parameterMap);
        for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
            System.err.println(entry.getKey()+ Arrays.toString(entry.getValue()));
        }

        System.err.println(req.getParameterValues("hobby"));//获取指定参数对应的所有的值
    }


}
